package cn.zqy.demo2.day13StreamAndMethodReference.ConstructorMethodReference;
/*
    类的构造器(构造方法)引用
 */
public class Demo01Constructor {
    //定义一个方法,参数传递姓名和PersonBuilder接口,方法中通过姓名创建Person对象
    public static void show(String name, PersonBuilder pb) {
        Person p = pb.createPerson(name);
        System.out.println(p.getName());
    }

    public static void main(String[] args) {
        // 调用printName方法,方法的参数PersonBuilder接口是一个函数式接口,可以传递Lambda
        show("黄晓明", (String name) ->{
          return new Person(name);
        });

         /*
            使用方法引用优化Lambda表达式
            构造方法new Person(String name) 已知
            创建对象已知 new
            就可以使用Person引用new创建对象
         */
        show("王宝绿", Person::new);
    }
}
